package com.skivingcloud.report.bigscreen.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;

import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 
 * </p>
 *
 * @author skivingcloud
 * @since 2022-07-29
 */
@TableName(value = "sys_report_dashboard_widget" , autoResultMap = true)
@ApiModel(value = "ReportDashboardWidget对象", description = "大屏设计详细数据")
public class ReportDashboardWidget implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("组件id")
    private String id;

    @ApiModelProperty("报表编码")
    private String reportCode;

    @ApiModelProperty("组件类型参考字典DASHBOARD_PANEL_TYPE")
    private String type;

    @ApiModelProperty("组件的渲染属性json")
    @JsonProperty
    @TableField(value = "setup", typeHandler = JacksonTypeHandler.class)
    private JsonNode setup;

    @ApiModelProperty("组件的数据属性json")
    @JsonProperty
    @TableField(value = "setup", typeHandler = JacksonTypeHandler.class)
    private JsonNode data;

    @ApiModelProperty("组件的配置属性json")
    @JsonProperty
    @TableField(value = "setup", typeHandler = JacksonTypeHandler.class)
    private JsonNode collapse;

    @ApiModelProperty("组件的大小位置属性json")
    @JsonProperty
    @TableField(value = "setup", typeHandler = JacksonTypeHandler.class)
    private JsonNode position;

    @ApiModelProperty("options配置项")
    @JsonProperty
    @TableField(value = "setup", typeHandler = JacksonTypeHandler.class)
    private JsonNode options;

    @ApiModelProperty("自动刷新间隔秒")
    private Integer refreshSeconds;

    @ApiModelProperty("0--已禁用 1--已启用  DIC_NAME=ENABLE_FLAG")
    private String enableFlag;

    @ApiModelProperty(" 0--未删除 1--已删除 DIC_NAME=DEL_FLAG")
    private String deleteFlag;

    @ApiModelProperty("排序，图层的概念")
    private Long sort;

    private String creater;

    private LocalDateTime createTime;

    private String modUser;

    private LocalDateTime modTime;

    @ApiModelProperty("版本号")
    private Integer version;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    public String getReportCode() {
        return reportCode;
    }

    public void setReportCode(String reportCode) {
        this.reportCode = reportCode;
    }
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
    public JsonNode getSetup() {
        return setup;
    }

    public void setSetup(JsonNode setup) {
        this.setup = setup;
    }
    public JsonNode getData() {
        return data;
    }

    public void setData(JsonNode data) {
        this.data = data;
    }
    public JsonNode getCollapse() {
        return collapse;
    }

    public void setCollapse(JsonNode collapse) {
        this.collapse = collapse;
    }
    public JsonNode getPosition() {
        return position;
    }

    public void setPosition(JsonNode position) {
        this.position = position;
    }
    public JsonNode getOptions() {
        return options;
    }

    public void setOptions(JsonNode options) {
        this.options = options;
    }
    public Integer getRefreshSeconds() {
        return refreshSeconds;
    }

    public void setRefreshSeconds(Integer refreshSeconds) {
        this.refreshSeconds = refreshSeconds;
    }
    public String getEnableFlag() {
        return enableFlag;
    }

    public void setEnableFlag(String enableFlag) {
        this.enableFlag = enableFlag;
    }
    public String getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(String deleteFlag) {
        this.deleteFlag = deleteFlag;
    }
    public Long getSort() {
        return sort;
    }

    public void setSort(Long sort) {
        this.sort = sort;
    }
    public String getCreater() {
        return creater;
    }

    public void setCreater(String creater) {
        this.creater = creater;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public String getModUser() {
        return modUser;
    }

    public void setModUser(String modUser) {
        this.modUser = modUser;
    }
    public LocalDateTime getModTime() {
        return modTime;
    }

    public void setModTime(LocalDateTime modTime) {
        this.modTime = modTime;
    }
    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    @Override
    public String toString() {
        return "ReportDashboardWidget{" +
            "id=" + id +
            ", reportCode=" + reportCode +
            ", type=" + type +
            ", setup=" + setup +
            ", data=" + data +
            ", collapse=" + collapse +
            ", position=" + position +
            ", options=" + options +
            ", refreshSeconds=" + refreshSeconds +
            ", enableFlag=" + enableFlag +
            ", deleteFlag=" + deleteFlag +
            ", sort=" + sort +
            ", creater=" + creater +
            ", createTime=" + createTime +
            ", modUser=" + modUser +
            ", modTime=" + modTime +
            ", version=" + version +
        "}";
    }
}
